Skip to content

graspologic-native: Add version 1.3.1 - #2728

Open
luhenry wants to merge 4 commits into
mainfrom
graspologic-native
Open

luhenry wants to merge 4 commits into
mainfrom
graspologic-native

Conversation

@luhenry

@luhenry luhenry commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Compiles the Leiden community-detection pyo3 extension that backs the graspologic graph-statistics library. Upstream publishes no riscv64 wheel.

Mirrors upstream's CI.yml build job.

Differs from upstream

  • Stage LICENSE beside packages/pyo3/pyproject.toml before building - maturin's licence glob is relative to the pyproject directory, so upstream's own wheels ship no licence text.
  • Drop musllinux - numpy and scipy have no musllinux_riscv64 wheel on our registry yet, so the installed wheel's own runtime deps can't resolve there.

Matrix: cp39-abi3 + cp314t - pyo3's abi3-py39 Cargo feature is unconditional, so one wheel covers every GIL-ful interpreter down to the floor the crate names.

Testing

  • same as upstream (python -m unittest against the installed wheel)

License: OK - MIT, nothing vendored.

Built on cp39 (abi3-py39) and cp314t; 6 passed on each.

graspologic-native ships an unconditional pyo3 abi3-py39 feature
(Cargo.toml), so its PyPI cp39 tag is just the abi3 floor, not a stale
Python-version ceiling: one wheel covers every GIL-ful interpreter, with
a separate build for the free-threaded cp314t leg. The crate graph has
no -sys dependencies and no C toolchain requirement.
The three include entries shared no key with the base version
dimension, so GitHub Actions applied them in sequence to the same
single combination instead of fanning out, leaving only the last
entry's tag/platform/build. Explicit platform/tag dimensions with an
exclude, and CIBW_BUILD computed via format(), produce all three legs.
pip's default resolver preferred a newer public-PyPI numpy/scipy
release over our registry's riscv64 wheel and fell back to building
from sdist; scipy's sdist then failed on the test venv's missing
OpenBLAS. PIP_ONLY_BINARY keeps the resolution on the wheels our
registry actually ships for riscv64.
numpy and scipy are runtime dependencies of the built wheel, and
neither has a musllinux_riscv64 build in this registry yet, so pip
fell back to their manylinux riscv64 wheel inside the musl test
container; numpy's compiled extension then failed to load against
musl's dynamic linker. Manylinux is unaffected and keeps both legs.
@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://riseproject-dev.github.io/python-wheels/pr-preview/pr-2728/

Built to branch gh-pages at 2026-10-05 18:55 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

luhenry added a commit that referenced this pull request Oct 5, 2026
@luhenry
luhenry marked this pull request as ready for review October 5, 2026 18:17
luhenry added a commit that referenced this pull request Oct 5, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant